home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / borland / jnfb88.zip / READRX.ZIP / REFLEX.H < prev    next >
Text File  |  1987-09-24  |  4KB  |  69 lines

  1. /* reflex.h: structure definitions for Reflex data bases */
  2.  
  3. #define HANDLE   void far *                       /* 32-bit pointer */
  4. #define RXID     "3Q.!&@#$!&&"                 /* Reflex identifier */
  5.  
  6. typedef struct {                    /* data file section descriptor */
  7.   int  dfType;                                /* section tytpe code */
  8.   long dfAddr;                        /* start addr in file (bytes) */
  9.   long dfLen;                                     /* length (bytes) */
  10. } DFDESC;
  11.  
  12. typedef struct {                           /* file header structure */
  13.   int    hdrSz;                        /* size of file header = 512 */
  14.   char   stamp[12];               /* identification = "3Q.!&@#$!&&" */
  15.   int    dirty;                    /* non-zero implies corrupt file */
  16.   int    verViews;                       /* view info version level */
  17.   int    verModels;                /* modeling system version level */
  18.   int    verData;                         /* raw data version level */
  19.   int    fRecalc;              /* non-zero implies recalc necessary */
  20.   char   screenType;         /* active screen type at file creation */
  21.   char   checkSum;                                 /* file checksum */
  22.   char   reserved[38];                   /* reserved for future use */
  23.   int    sectionCt;            /* number of sections of type DFDESC */
  24.   DFDESC dfSection[];                        /* section descriptors */
  25. } DFHDR;
  26.  
  27. typedef struct {                                 /* field sort spec */
  28.   unsigned  fldType     : 7;           /* used internally by Reflex */
  29.   unsigned isAscending  : 1;                       /* sorting order */
  30.   unsigned  fieldID     : 8;      /* field ID: index to field defin */
  31. } FLDSORTSPEC;
  32.  
  33. typedef FLDSORTSPEC SORTSPEC[6];                /* sort specs array */
  34.  
  35. typedef struct {                     /* text table master structure */
  36.   HANDLE    index;                              /* pointer to index */
  37.   HANDLE    pool;                           /* pointer to text pool */
  38. } ETREC;
  39.  
  40. typedef struct {                         /* field descriptor record */
  41.   unsigned nameOffset;         /* offset of field name in name pool */
  42.   char     dataType;                                  /* field type */
  43.   char     precision;                /* decimal precision = 5 bits,
  44.                                              field formats = 3 bits */
  45.   unsigned fldOffset;                  /* offset of field in record */
  46.   ETREC    etr;                              /* repeating text info */
  47.   unsigned isDescend : 1;                        /* descending flag */
  48.   unsigned sortPos : 7;                          /* sort precedence */
  49.   unsigned reserved : 8;                                /* not used */
  50. } FLDDESC;
  51.  
  52. typedef struct {                         /* data base master record */
  53.   unsigned totalRecs;            /* total number of records in file */
  54.   unsigned filtRecs;    /* # recs passing most recent global filter */
  55. } MASTREC;
  56.  
  57. /* GLOBALS */
  58. FILE           *lst;                                    /* printer */
  59. unsigned       nflds;                       /* # field descriptors */
  60. unsigned       base, temp;  /* point of reference for control info */
  61. int            *work;             /* for getting lengths from file */
  62. DFHDR          *head;                             /* header record */
  63. DFDESC         *descr;                 /* section descriptor table */
  64. SORTSPEC       *sort;                   /* global sort specs table */
  65. char           *pool;                           /* field name pool */
  66. FLDDESC        *dtable;                  /* field descriptor table */
  67. int            *etpool;                    /* enumerated text pool */
  68. MASTREC        *mast;                             /* master record */
  69.